0
Главная Информация Документы Музей Студенту Преподавателю


Valid HTML 4.01 Transitional
Valid CSS!
Yellow Pages
HotLog

English

GNUplot Demonstration

Содержание Назад Вперед

Использование gnuplot для интегрирования функций

#
# $Id: bivariat.dem%v 3.38.2.56 1993/01/22 02:44:12 woo Exp woo $
#
# Эта демо версия медленна и требует большого размера стека.
# Не пытайтесь запустить ее под MSDOS.
#

# функция integral_f(x) близка к интегралу f(x) от 0 до x.
# integral2_f(x,y) близка и интегралу от x до y.
# определим f(x) как функция одной переменной
#
# интеграл считается как сумма f(x_n)*delta 
#   x/delta от x до 0)
#
f(x) = exp(-x**2)
delta = 0.2
#  можно взять delta=0.025 для машин не с MSDOS
#
# integral_f(x) использует одну переменную, верхний предел.  0 нижний предел.
# вычисляется интеграл f(t) от 0 до x
integral_f(x) = (x>0)?integral1a(x):-integral1b(x)
integral1a(x) = (x<=0)?0:(integral1a(x-delta)+delta*f(x))
integral1b(x) = (x>=0)?0:(integral1b(x+delta)+delta*f(x))
#
# integral2_f(x,y) двух переменных; x нижний предел, y верхний.
# вычисляется интеграл f(t) от x до y
integral2_f(x,y) = (xy)?0:(integral2(x+delta,y)+delta*f(x))

set autoscale
set title "approximate the integral of functions"
set samples 50

plot [-5:5] f(x) title "f(x)=exp(-x**2)", 
2/sqrt(pi)*integral_f(x) title "erf(x)=2/sqrt(pi)*integral_f(x)"

изображение
f(x)=sin(x)

plot [-5:5] f(x) title "f(x)=sin(x)", integral_f(x)

изображение
set title "approximate the integral of functions (upper and lower limits)"

f(x)=(x-2)**2-20

plot [-10:10] f(x) title "f(x)=(x-2)**2-20", integral2_f(-5,x)

изображение
f(x)=sin(x-1)-.75*sin(2*x-1)+(x**2)/8-5

plot  [-10:10] f(x) title "f(x)=sin(x-1)-0.75*sin(2*x-1)+(x**2)/8-5", integral2_f(x,1)

изображение
#
# This definition computes the ackermann. Не пытайтесь вычислять его
# для не интегральных значений. Так же, не следует брать значения
# больше m = 3, чтобы долго не ждать.

ack(m,n) = (m == 0) ? n + 1 : (n == 0) ? ack(m-1,1) : ack(m-1,ack(m,n-1))

set xrange [0:3]
set yrange [0:3]

set isosamples 4
set samples 4

set title "Plot of the ackermann function"

splot ack(x, y)

изображение
set xrange [-5:5]
set yrange [-10:10]
set isosamples 10
set samples 100
set key 4,-3
set title "Min(x,y) and Max(x,y)"

#
min(x,y) = (x < y) ? x : y
max(x,y) = (x > y) ? x : y

plot sin(x), x**2, x**3, max(sin(x), min(x**2, x**3))+0.5

изображение
#
# gcd(x,y) находит НОД x и y,
#          используя алгоритм Евклида
# поскольку это возможно только для целых чисел, то сначала числа округляются
gcd(x,y) = gcd1(rnd(max(x,y)),rnd(min(x,y)))
gcd1(x,y) = (y == 0) ? x : gcd1(y, x - x/y * y)
rnd(x) = int(x+0.5)

set samples 59
set xrange [1:59]
set auto
set key

set title "Greatest Common Divisor (for integers only)"

plot gcd(x, 60)
изображение
set xrange [-10:10]
set yrange [-10:10]
set auto
set isosamples 10
set samples 100
set title ""


http://playfair.stanford.edu/~woo/woo.html
Кафедра Информатики и Математического Обеспечения: спецкурс Визуализация данных